--- title: "皮亚诺曲线距离" created: 2025-11-28 tags: - 算法 --- # 皮亚诺曲线距离 ## 题目 [皮亚诺曲线距离](https://www.lanqiao.cn/paper/3839/problem/1023/) ![[image-eb8487ef.png]] ## 思路分析 ![[image-b2d706c1.png]] 没找到什么规律…… 直接把表打了吧 把1阶的分拿到 无语 1阶没分 ## 代码实现 ```cpp #include using namespace std; #define endl '\n' int k; int main() { ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); int x1,y1,x2,y2; cin>>k>>x1>>y1>>x2>>y2; if(k==1){ if(x1==0 && y1==0){ if(x1==0 && y1==0) cout<<0; if(x2==0 && y2==1) cout<<1; if(x2==0 && y2==2) cout<<2; if(x2==1 && y2==2) cout<<3; if(x2==1 && y2==1) cout<<4; if(x2==1 && y2==0) cout<<5; if(x2==2 && y2==0) cout<<6; if(x2==2 && y2==1) cout<<7; if(x2==2 && y2==2) cout<<8; } if(x1==0 && y1==1){ if(x2==0 && y2==0) cout<<1; if(x1==0 && y1==1) cout<<0; if(x2==0 && y2==2) cout<<1; if(x2==1 && y2==2) cout<<2; if(x2==1 && y2==1) cout<<3; if(x2==1 && y2==0) cout<<4; if(x2==2 && y2==0) cout<<5; if(x2==2 && y2==1) cout<<6; if(x2==2 && y2==2) cout<<7; } if(x1==0 && y1==2){ if(x1==0 && y1==0) cout<<2; if(x2==0 && y2==1) cout<<1; if(x2==0 && y2==2) cout<<0; if(x2==1 && y2==2) cout<<1; if(x2==1 && y2==1) cout<<2; if(x2==1 && y2==0) cout<<3; if(x2==2 && y2==0) cout<<4; if(x2==2 && y2==1) cout<<5; if(x2==2 && y2==2) cout<<6; } if(x1==1 && y1==2){ if(x1==0 && y1==0) cout<<3; if(x2==0 && y2==1) cout<<2; if(x2==0 && y2==2) cout<<1; if(x2==1 && y2==2) cout<<0; if(x2==1 && y2==1) cout<<1; if(x2==1 && y2==0) cout<<2; if(x2==2 && y2==0) cout<<3; if(x2==2 && y2==1) cout<<4; if(x2==2 && y2==2) cout<<5; } if(x1==1 && y1==1){ if(x1==0 && y1==0) cout<<4; if(x2==0 && y2==1) cout<<3; if(x2==0 && y2==2) cout<<2; if(x2==1 && y2==2) cout<<1; if(x2==1 && y2==1) cout<<0; if(x2==1 && y2==0) cout<<1; if(x2==2 && y2==0) cout<<2; if(x2==2 && y2==1) cout<<3; if(x2==2 && y2==2) cout<<4; } if(x1==1 && y1==0){ if(x1==0 && y1==0) cout<<5; if(x2==0 && y2==1) cout<<4; if(x2==0 && y2==2) cout<<3; if(x2==1 && y2==2) cout<<2; if(x2==1 && y2==1) cout<<1; if(x2==1 && y2==0) cout<<0; if(x2==2 && y2==0) cout<<1; if(x2==2 && y2==1) cout<<2; if(x2==2 && y2==2) cout<<3; } if(x1==2 && y1==0){ if(x1==0 && y1==0) cout<<6; if(x2==0 && y2==1) cout<<5; if(x2==0 && y2==2) cout<<4; if(x2==1 && y2==2) cout<<3; if(x2==1 && y2==1) cout<<2; if(x2==1 && y2==0) cout<<1; if(x2==2 && y2==0) cout<<0; if(x2==2 && y2==1) cout<<1; if(x2==2 && y2==2) cout<<2; } if(x1==2 && y1==1){ if(x1==0 && y1==0) cout<<7; if(x2==0 && y2==1) cout<<6; if(x2==0 && y2==2) cout<<5; if(x2==1 && y2==2) cout<<4; if(x2==1 && y2==1) cout<<3; if(x2==1 && y2==0) cout<<2; if(x2==2 && y2==0) cout<<1; if(x2==2 && y2==1) cout<<0; if(x2==2 && y2==2) cout<<1; } if(x1==2 && y1==2){ if(x1==0 && y1==0) cout<<8; if(x2==0 && y2==1) cout<<7; if(x2==0 && y2==2) cout<<6; if(x2==1 && y2==2) cout<<5; if(x2==1 && y2==1) cout<<4; if(x2==1 && y2==0) cout<<3; if(x2==2 && y2==0) cout<<2; if(x2==2 && y2==1) cout<<1; if(x2==2 && y2==2) cout<<0; } } return 0; } ``` ## 同类题型 ## 视频讲解 --- ⬅️ [[玩具蛇|玩具蛇]] 🏠 [[00-冲刺国赛]] ➡️ [[游园安排|游园安排]]